﻿#include <learn/topo/topo_builder.h>
#include <learn/topo/topo_vertex.h>

using namespace xi;
using namespace xi::topo;

Topo_Vertex::Topo_Vertex() : Topo_Shape()
{
}

std::vector<Topo_Edge *> &Topo_Vertex::edges()
{
    return m_edges;
}

Topo_Vertex::~Topo_Vertex()
{
    Topo_Builder builder;

    // 删除所有边，注意先移除边数组，因为删 edge 时会修改边数组
    std::vector<Topo_Edge *> edges = std::move(m_edges);
    m_edges.clear();

    // 现在可以删除所有边
    for (auto e : edges)
        builder.remove_edge(e);
}